package com.yuanshen.receive;

import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

/**
 * @author 朱厚强
 * @version 1.0
 * @classname DirectListener
 * Direct 直接交换机模式
 * 适用于单播（一对一）的路由策略。
 */
//@Component
public class DirectListener {
    //  交换机--路由key方式接受 -->注解方式
    // 注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.DIRECT.queue1"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.DIRECT",type = ExchangeTypes.DIRECT),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {"red","blue"}
    ))
    public void receiveR1(String message){
        System.out.println("receiveR1接收message = " + message);
    }
    // 注解方式实现 交换器与队列绑定
    @RabbitListener(bindings = @QueueBinding(
            // 第一个值是队列相关的
            value = @Queue(name = "zhuhq.DIRECT.queue2"),
            // 第二个值是和交换机相关的
            exchange = @Exchange(name = "zhuhq.DIRECT",type = ExchangeTypes.DIRECT),
            // 第三个值是和key相关的 现在没有路由，所以先不管他。
            key = {"red","yellow"}
    ))
    public void receiveR2(String message){
        System.out.println("receiveR2接收message = " + message);
    }
}
